Computer systems generally include one or more processors interfaced to a temporary data storage device such as a memory device and one or more persistent data storage devices such as disk drives. Each disk drive generally has an associated disk controller. Data is transferred from the disk drives to the disk controller and is then transferred to the memory device over a communications bus or similar.
Where there are multiple data storage facilities or devices a file system must allocate space on one or more of the data storage facilities to satisfy the request. File systems have many choices of data storage device from which to allocate space. Some choices of allocation provide better I/O (input/output) performance than other choices. It is important to allocate storage in a way that maximizes I/O performance.
In a parallel shared nothing environment, one existing allocation technique makes new allocations of space from the storage device with the least number of existing allocations. It is assumed for such an allocation that all data storage device configurations are homogeneous in the sense that all storage devices in the system are identical in terms of their performance.
The I/O requests associated with a particular task are issued in parallel and all of these I/O requests must complete before the task can complete. If a task issues 100 queries in parallel by issuing 99 queries to fast devices and one query to a slow device, the task will have to wait for that one slow device to complete its I/O operation even if the other 99 I/O operations completed much earlier. All devices are made effectively as slow as the slowest device and so it is important for such a configuration that the devices are identical.
A relaxation of the homogeneous storage requirement would provide managers of the above system with greater flexibility. If more storage space is required but the storage device type for which the system is currently configured is too expensive, heterogeneous storage would enable the purchasing of only enough storage to meet the additional requirement. If homogeneous storage were required, all the old storage devices would have to be replaced with new storage devices at great cost. Heterogeneous storage has the potential to increase the flexibility available to customers in meeting their storage requirements.